# PPA-1 Computer Architecture

This repository is where all the resources for the ~PPA-1~ architecture
can be found.

The ~PPA-1~ architecture is a hobby project of mine to create a CPU from
scratch using libre software and cheap, widely available, ICs. Apart from
the architecture this repository will also contain tooling around it. An
Operating System and a C compiler.

# Timeline
A preliminary timeline is the following:

## June 2017
* First draft of the architecture specification.

## September 2017
* Most of the Verilog implementation finished.

## September to February 2017
* Polishing of the spec using data gathered from the Verilog
  implementation.
* Schematics for the first PPA-1 physical implementation.
  The ~PPAPC-1~.
* Timing analysis of the schematics

## February to August 2018
* Implementation of the ~PPAPC-1~ on a breadboard.
* Testing of the breadboard implementation.
* Possible revision of spec & verilog & schematics based on
  feedback gathered.
  
## August to November 2018
* Building physical programmer and debugger using a microcontroller.
  The ~PPADBG-1~.

## November 2018 to February 2019
* Design of the PCB version of the ~PPAPC-1~
* Sending to print several revisions.

## February to April 2019
* Building the PCB version of the ~PPAPC-1~.
* Getting a nice case for both the ~PPAPC-1~ and the ~PPADBG-1~.


# Planned Software

Verilog simulator:

- Verilator[0], a Verilog to high performance C++ compiler.


Schematic editor and PCB EDA software:

- KiCad[1], a CERN-backed EDA toolset.


SPICE simulation

- ngspice[2], a mixed-level/mixed-signal circuit simulator.

[0] https://www.veripool.org/projects/verilator/wiki/Intro
[1] http://kicad-pcb.org/
[2] http://ngspice.sourceforge.net/


